<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ROSS: core/lz4.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <a href="https://github.com/ROSS-org/ROSS">
   <div id="projectname">ROSS
   </div>
   </a>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_af18cf245e3394ab3b436135935cfd6e.html">core</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">lz4.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="lz4_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">   LZ4 - Fast LZ compression algorithm</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">   Header File</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">   Copyright (C) 2011-2015, Yann Collet.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">   BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">   Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">   modification, are permitted provided that the following conditions are</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">   met:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">       * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">   notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">       * Redistributions in binary form must reproduce the above</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">   copyright notice, this list of conditions and the following disclaimer</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">   in the documentation and/or other materials provided with the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">   distribution.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">   &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">   You can contact the author at :</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">   - LZ4 source repository : https://github.com/Cyan4973/lz4</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">   - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#if defined (__cplusplus)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"> * lz4.h provides block compression functions, and gives full buffer control to programmer.</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"> * If you need to generate inter-operable compressed data (respecting LZ4 frame specification),</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment"> * and can let the library handle its own memory, please use lz4frame.h instead.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">/**************************************</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">*  Version</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">**************************************/</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="lz4_8h.html#a4a15eb1f8aa69834f917a50d7652413e">   50</a></span>&#160;<span class="preprocessor">#define LZ4_VERSION_MAJOR    1    </span><span class="comment">/* for breaking interface changes  */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="lz4_8h.html#af16952f74f68ac445da9fc7603609909">   51</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_VERSION_MINOR    7    </span><span class="comment">/* for new (non-breaking) interface capabilities */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="lz4_8h.html#a19d496bbe4d8448bc2d42cfb576cf525">   52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_VERSION_RELEASE  0    </span><span class="comment">/* for tweaks, bug-fixes, or development */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="lz4_8h.html#aac7e910a11c45364a8b235d0d43a0265">   53</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_VERSION_NUMBER (LZ4_VERSION_MAJOR *100*100 + LZ4_VERSION_MINOR *100 + LZ4_VERSION_RELEASE)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a9a7a69397b6452fcf6a35caa40493776">LZ4_versionNumber</a> (<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">/**************************************</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">*  Tuning parameter</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">**************************************/</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment"> * LZ4_MEMORY_USAGE :</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment"> * Memory usage formula : N-&gt;2^N Bytes (examples : 10 -&gt; 1KB; 12 -&gt; 4KB ; 16 -&gt; 64KB; 20 -&gt; 1MB; etc.)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment"> * Increasing memory usage improves compression ratio</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment"> * Reduced memory usage can improve speed, due to cache effect</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment"> * Default value is 14, for 16KB, which nicely fits into Intel x86 L1 cache</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="lz4_8h.html#a24ddbc39e7379532031a91357e66a32c">   66</a></span>&#160;<span class="preprocessor">#define LZ4_MEMORY_USAGE 14</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">/**************************************</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">*  Simple Functions</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">**************************************/</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a763c64c41c7248a98cf2e9c733bffd3e">LZ4_compress_default</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> sourceSize, <span class="keywordtype">int</span> maxDestSize);</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a0826f3dc340fdea6dfa985f6ac26642f">LZ4_decompress_safe</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> compressedSize, <span class="keywordtype">int</span> maxDecompressedSize);</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">LZ4_compress_default() :</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">    Compresses &#39;sourceSize&#39; bytes from buffer &#39;source&#39;</span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">    into already allocated &#39;dest&#39; buffer of size &#39;maxDestSize&#39;.</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">    Compression is guaranteed to succeed if &#39;maxDestSize&#39; &gt;= LZ4_compressBound(sourceSize).</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">    It also runs faster, so it&#39;s a recommended setting.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">    If the function cannot compress &#39;source&#39; into a more limited &#39;dest&#39; budget,</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">    compression stops *immediately*, and the function result is zero.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">    As a consequence, &#39;dest&#39; content is not valid.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">    This function never writes outside &#39;dest&#39; buffer, nor read outside &#39;source&#39; buffer.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">        sourceSize  : Max supported value is LZ4_MAX_INPUT_VALUE</span></div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment">        maxDestSize : full or partial size of buffer &#39;dest&#39; (which must be already allocated)</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">        return : the number of bytes written into buffer &#39;dest&#39; (necessarily &lt;= maxOutputSize)</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">              or 0 if compression fails</span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment">LZ4_decompress_safe() :</span></div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment">    compressedSize : is the precise full size of the compressed block.</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment">    maxDecompressedSize : is the size of destination buffer, which must be already allocated.</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">    return : the number of bytes decompressed into destination buffer (necessarily &lt;= maxDecompressedSize)</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">             If destination buffer is not large enough, decoding will stop and output an error code (&lt;0).</span></div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment">             If the source stream is detected malformed, the function will stop decoding and return a negative result.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment">             This function is protected against buffer overflow exploits, including malicious data packets.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">             It never writes outside output buffer, nor reads outside input buffer.</span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment">/**************************************</span></div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">*  Advanced Functions</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment">**************************************/</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="lz4_8h.html#a88ee51e36ca74cd0533e731c20572ea6">  105</a></span>&#160;<span class="preprocessor">#define LZ4_MAX_INPUT_SIZE        0x7E000000   </span><span class="comment">/* 2 113 929 216 bytes */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="lz4_8h.html#a2453a423fd34640a0afbbf57ed0a5399">  106</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_COMPRESSBOUND(isize)  ((unsigned)(isize) &gt; (unsigned)LZ4_MAX_INPUT_SIZE ? 0 : (isize) + ((isize)/255) + 16)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">LZ4_compressBound() :</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">    Provides the maximum size that LZ4 compression may output in a &quot;worst case&quot; scenario (input data not compressible)</span></div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">    This function is primarily useful for memory allocation purposes (destination buffer size).</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">    Macro LZ4_COMPRESSBOUND() is also provided for compilation-time evaluation (stack memory allocation for example).</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">    Note that LZ4_compress_default() compress faster when dest buffer size is &gt;= LZ4_compressBound(srcSize)</span></div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">        inputSize  : max supported value is LZ4_MAX_INPUT_SIZE</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment">        return : maximum output size in a &quot;worst case&quot; scenario</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment">              or 0, if input size is too large ( &gt; LZ4_MAX_INPUT_SIZE)</span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a362093578d68480b493984b4853edc1f">LZ4_compressBound</a>(<span class="keywordtype">int</span> inputSize);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">LZ4_compress_fast() :</span></div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">    Same as LZ4_compress_default(), but allows to select an &quot;acceleration&quot; factor.</span></div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">    The larger the acceleration value, the faster the algorithm, but also the lesser the compression.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">    It&#39;s a trade-off. It can be fine tuned, with each successive value providing roughly +~3% to speed.</span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">    An acceleration value of &quot;1&quot; is the same as regular LZ4_compress_default()</span></div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">    Values &lt;= 0 will be replaced by ACCELERATION_DEFAULT (see lz4.c), which is 1.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#affe4afb333be7fdc027316cc3a381b04">LZ4_compress_fast</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> sourceSize, <span class="keywordtype">int</span> maxDestSize, <span class="keywordtype">int</span> acceleration);</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">LZ4_compress_fast_extState() :</span></div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment">    Same compression function, just using an externally allocated memory space to store compression state.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">    Use LZ4_sizeofState() to know how much memory must be allocated,</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">    and allocate it on 8-bytes boundaries (using malloc() typically).</span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">    Then, provide it as &#39;void* state&#39; to compression function.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a5533b6e13559d2c75ac5ac6d4eb13beb">LZ4_sizeofState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#aa1dd11dbded7552766e763c822718586">LZ4_compress_fast_extState</a> (<span class="keywordtype">void</span>* state, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> inputSize, <span class="keywordtype">int</span> maxDestSize, <span class="keywordtype">int</span> acceleration);</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">LZ4_compress_destSize() :</span></div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">    Reverse the logic, by compressing as much data as possible from &#39;source&#39; buffer</span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">    into already allocated buffer &#39;dest&#39; of size &#39;targetDestSize&#39;.</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">    This function either compresses the entire &#39;source&#39; content into &#39;dest&#39; if it&#39;s large enough,</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">    or fill &#39;dest&#39; buffer completely with as much data as possible from &#39;source&#39;.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">        *sourceSizePtr : will be modified to indicate how many bytes where read from &#39;source&#39; to fill &#39;dest&#39;.</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">                         New value is necessarily &lt;= old value.</span></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">        return : Nb bytes written into &#39;dest&#39; (necessarily &lt;= targetDestSize)</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment">              or 0 if compression fails</span></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a82b0912e04b945e3817def431071dcd6">LZ4_compress_destSize</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span>* sourceSizePtr, <span class="keywordtype">int</span> targetDestSize);</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment">LZ4_decompress_fast() :</span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment">    originalSize : is the original and therefore uncompressed size</span></div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">    return : the number of bytes read from the source buffer (in other words, the compressed size)</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">             If the source stream is detected malformed, the function will stop decoding and return a negative result.</span></div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment">             Destination buffer must be already allocated. Its size must be a minimum of &#39;originalSize&#39; bytes.</span></div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment">    note : This function fully respect memory boundaries for properly formed compressed data.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">           It is a bit faster than LZ4_decompress_safe().</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">           However, it does not provide any protection against intentionally modified data stream (malicious input).</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">           Use this function in trusted environment only (data to decode comes from a trusted source).</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a1b6fd5873bbe60abc9a6bf7b3e75056a">LZ4_decompress_fast</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> originalSize);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">LZ4_decompress_safe_partial() :</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">    This function decompress a compressed block of size &#39;compressedSize&#39; at position &#39;source&#39;</span></div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">    into destination buffer &#39;dest&#39; of size &#39;maxDecompressedSize&#39;.</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">    The function tries to stop decompressing operation as soon as &#39;targetOutputSize&#39; has been reached,</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">    reducing decompression time.</span></div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">    return : the number of bytes decoded in the destination buffer (necessarily &lt;= maxDecompressedSize)</span></div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">       Note : this number can be &lt; &#39;targetOutputSize&#39; should the compressed block to decode be smaller.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">             Always control how many bytes were decoded.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">             If the source stream is detected malformed, the function will stop decoding and return a negative result.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">             This function never writes outside of output buffer, and never reads outside of input buffer. It is therefore protected against malicious data packets</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a32ad048b557cd0bd1134cc8221dca208">LZ4_decompress_safe_partial</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> compressedSize, <span class="keywordtype">int</span> targetOutputSize, <span class="keywordtype">int</span> maxDecompressedSize);</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">/***********************************************</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">*  Streaming Compression Functions</span></div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">***********************************************/</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="lz4_8h.html#acddbce79f3e1d413f295e97d986ab3f5">  187</a></span>&#160;<span class="preprocessor">#define LZ4_STREAMSIZE_U64 ((1 &lt;&lt; (LZ4_MEMORY_USAGE-3)) + 4)</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="lz4_8h.html#a1b76402ebadac569ceb550cb22a7a6e4">  188</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_STREAMSIZE     (LZ4_STREAMSIZE_U64 * sizeof(long long))</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor"></span><span class="comment">/*</span></div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="comment"> * LZ4_stream_t</span></div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="comment"> * information structure to track an LZ4 stream.</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="comment"> * important : init this structure content before first use !</span></div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment"> * note : only allocated directly the structure if you are statically linking LZ4</span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment"> *        If you are using liblz4 as a DLL, please use below construction methods instead.</span></div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structLZ4__stream__t.html#ae4d6a1e6e680c9d9b3c3ea383da1d948">  196</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">long</span> <span class="keywordtype">long</span> table[<a class="code" href="lz4_8h.html#acddbce79f3e1d413f295e97d986ab3f5">LZ4_STREAMSIZE_U64</a>]; } <a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment"> * LZ4_resetStream</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment"> * Use this function to init an allocated LZ4_stream_t structure</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="keywordtype">void</span> <a class="code" href="lz4_8h.html#a79e9cb645d8480094bc9978a5882cb04">LZ4_resetStream</a> (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* streamPtr);</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment"> * LZ4_createStream will allocate and initialize an LZ4_stream_t structure</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment"> * LZ4_freeStream releases its memory.</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment"> * In the context of a DLL (liblz4), please use these methods rather than the static struct.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment"> * They are more future proof, in case of a change of LZ4_stream_t size.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* <a class="code" href="lz4_8h.html#a2ee12bd94227e0c76a3b686eee813c91">LZ4_createStream</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="keywordtype">int</span>           <a class="code" href="lz4_8h.html#a2767ab06e17851306c82beb70d1ae285">LZ4_freeStream</a> (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* streamPtr);</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment"> * LZ4_loadDict</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment"> * Use this function to load a static dictionary into LZ4_stream.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment"> * Any previous data will be forgotten, only &#39;dictionary&#39; will remain in memory.</span></div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment"> * Loading a size of 0 is allowed.</span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment"> * Return : dictionary size, in bytes (necessarily &lt;= 64 KB)</span></div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a8bddc4523649a0417a05b51cd86d29dc">LZ4_loadDict</a> (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* streamPtr, <span class="keyword">const</span> <span class="keywordtype">char</span>* dictionary, <span class="keywordtype">int</span> dictSize);</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment"> * LZ4_compress_fast_continue</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment"> * Compress buffer content &#39;src&#39;, using data from previously compressed blocks as dictionary to improve compression ratio.</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment"> * Important : Previous data blocks are assumed to still be present and unmodified !</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment"> * &#39;dst&#39; buffer must be already allocated.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment"> * If maxDstSize &gt;= LZ4_compressBound(srcSize), compression is guaranteed to succeed, and runs faster.</span></div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="comment"> * If not, and if compressed data cannot fit into &#39;dst&#39; buffer size, compression stops, and function returns a zero.</span></div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a95a14f1e80807a2def8a25dc4a92e505">LZ4_compress_fast_continue</a> (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* streamPtr, <span class="keyword">const</span> <span class="keywordtype">char</span>* src, <span class="keywordtype">char</span>* dst, <span class="keywordtype">int</span> srcSize, <span class="keywordtype">int</span> maxDstSize, <span class="keywordtype">int</span> acceleration);</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment"> * LZ4_saveDict</span></div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment"> * If previously compressed data block is not guaranteed to remain available at its memory location</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment"> * save it into a safer place (char* safeBuffer)</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment"> * Note : you don&#39;t need to call LZ4_loadDict() afterwards,</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment"> *        dictionary is immediately usable, you can therefore call LZ4_compress_fast_continue()</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment"> * Return : saved dictionary size in bytes (necessarily &lt;= dictSize), or 0 if error</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a9c47b588beedea888f55bfc8f079135d">LZ4_saveDict</a> (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* streamPtr, <span class="keywordtype">char</span>* safeBuffer, <span class="keywordtype">int</span> dictSize);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">/************************************************</span></div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">*  Streaming Decompression Functions</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment">************************************************/</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="lz4_8h.html#a414ecb38e0607f239de5ebca5a5beef5">  247</a></span>&#160;<span class="preprocessor">#define LZ4_STREAMDECODESIZE_U64  4</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="lz4_8h.html#a9a08f1c4969b5e46eba93818cd7cb5a7">  248</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define LZ4_STREAMDECODESIZE     (LZ4_STREAMDECODESIZE_U64 * sizeof(unsigned long long))</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structLZ4__streamDecode__t.html#a26d8a3afb360f5fffff4fdb6e59b5ead">  249</a></span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> table[<a class="code" href="lz4_8h.html#a414ecb38e0607f239de5ebca5a5beef5">LZ4_STREAMDECODESIZE_U64</a>]; } <a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment"> * LZ4_streamDecode_t</span></div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment"> * information structure to track an LZ4 stream.</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment"> * init this structure content using LZ4_setStreamDecode or memset() before first use !</span></div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment"> * In the context of a DLL (liblz4) please prefer usage of construction methods below.</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment"> * They are more future proof, in case of a change of LZ4_streamDecode_t size in the future.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment"> * LZ4_createStreamDecode will allocate and initialize an LZ4_streamDecode_t structure</span></div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment"> * LZ4_freeStreamDecode releases its memory.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>* <a class="code" href="lz4_8h.html#a328b12424f9542cbc348b98482e455f5">LZ4_createStreamDecode</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="keywordtype">int</span>                 <a class="code" href="lz4_8h.html#afdcbf92c1921ecf2838db322c77c1485">LZ4_freeStreamDecode</a> (<a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>* LZ4_stream);</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment"> * LZ4_setStreamDecode</span></div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment"> * Use this function to instruct where to find the dictionary.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment"> * Setting a size of 0 is allowed (same effect as reset).</span></div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment"> * Return : 1 if OK, 0 if error</span></div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a971624e4abed2ab679a8c1728875663b">LZ4_setStreamDecode</a> (<a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>* LZ4_streamDecode, <span class="keyword">const</span> <span class="keywordtype">char</span>* dictionary, <span class="keywordtype">int</span> dictSize);</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">*_continue() :</span></div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment">    These decoding functions allow decompression of multiple blocks in &quot;streaming&quot; mode.</span></div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">    Previously decoded blocks *must* remain available at the memory position where they were decoded (up to 64 KB)</span></div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment">    In the case of a ring buffers, decoding buffer must be either :</span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment">    - Exactly same size as encoding buffer, with same update rule (block boundaries at same positions)</span></div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment">      In which case, the decoding &amp; encoding ring buffer can have any size, including very small ones ( &lt; 64 KB).</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment">    - Larger than encoding buffer, by a minimum of maxBlockSize more bytes.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">      maxBlockSize is implementation dependent. It&#39;s the maximum size you intend to compress into a single block.</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment">      In which case, encoding and decoding buffers do not need to be synchronized,</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment">      and encoding ring buffer can have any size, including small ones ( &lt; 64 KB).</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment">    - _At least_ 64 KB + 8 bytes + maxBlockSize.</span></div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment">      In which case, encoding and decoding buffers do not need to be synchronized,</span></div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment">      and encoding ring buffer can have any size, including larger than decoding buffer.</span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="comment">    Whenever these conditions are not possible, save the last 64KB of decoded data into a safe buffer,</span></div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment">    and indicate where it is saved using LZ4_setStreamDecode()</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#ac33dfb57efd9b3d6ab4c818ffd797f48">LZ4_decompress_safe_continue</a> (<a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>* LZ4_streamDecode, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> compressedSize, <span class="keywordtype">int</span> maxDecompressedSize);</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#acfb9c80632c155cdb7cce498ae1c88bc">LZ4_decompress_fast_continue</a> (<a class="code" href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a>* LZ4_streamDecode, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> originalSize);</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment">Advanced decoding functions :</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="comment">*_usingDict() :</span></div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment">    These decoding functions work the same as</span></div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">    a combination of LZ4_setStreamDecode() followed by LZ4_decompress_x_continue()</span></div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment">    They are stand-alone. They don&#39;t need nor update an LZ4_streamDecode_t structure.</span></div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a8aa703547a53208381f806aa36b45fe7">LZ4_decompress_safe_usingDict</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> compressedSize, <span class="keywordtype">int</span> maxDecompressedSize, <span class="keyword">const</span> <span class="keywordtype">char</span>* dictStart, <span class="keywordtype">int</span> dictSize);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a1af9f7a2df20389dd9a0a31706c683b7">LZ4_decompress_fast_usingDict</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> originalSize, <span class="keyword">const</span> <span class="keywordtype">char</span>* dictStart, <span class="keywordtype">int</span> dictSize);</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment">/**************************************</span></div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="comment">*  Obsolete Functions</span></div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="comment">**************************************/</span></div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="comment">/* Deprecate Warnings */</span></div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment">/* Should these warnings messages be a problem,</span></div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="comment">   it is generally possible to disable them,</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment">   with -Wno-deprecated-declarations for gcc</span></div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment">   or _CRT_SECURE_NO_WARNINGS in Visual for example.</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment">   You can also define LZ4_DEPRECATE_WARNING_DEFBLOCK. */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#ifndef LZ4_DEPRECATE_WARNING_DEFBLOCK</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="lz4_8h.html#ae93a3f2b9d40e878ab2940bb0b63fda5">  314</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  define LZ4_DEPRECATE_WARNING_DEFBLOCK</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="lz4_8h.html#ad592c1aaee404bea7bc9db64a0addcfd">  315</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  define LZ4_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)</span></div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  if (LZ4_GCC_VERSION &gt;= 405) || defined(__clang__)</span></div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#    define LZ4_DEPRECATED(message) __attribute__((deprecated(message)))</span></div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  elif (LZ4_GCC_VERSION &gt;= 301)</span></div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#    define LZ4_DEPRECATED(message) __attribute__((deprecated))</span></div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  elif defined(_MSC_VER)</span></div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#    define LZ4_DEPRECATED(message) __declspec(deprecated(message))</span></div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  else</span></div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#    pragma message(&quot;WARNING: You need to implement LZ4_DEPRECATED for this compiler&quot;)</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">  324</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#    define LZ4_DEPRECATED(message)</span></div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#  endif</span></div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* LZ4_DEPRECATE_WARNING_DEFBLOCK */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment">/* Obsolete compression functions */</span></div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="comment">/* These functions are planned to start generate warnings by r131 approximately */</span></div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a381f2c18481ff02bef22198a6e1d0cf2">LZ4_compress</a>               (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> sourceSize);</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a3a6eebab33f6637b7bd70db2c66ff88a">LZ4_compress_limitedOutput</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> sourceSize, <span class="keywordtype">int</span> maxOutputSize);</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a430f331e5951658bd033faf564a958bf">LZ4_compress_withState</a>               (<span class="keywordtype">void</span>* state, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> inputSize);</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#aae32f2434789e3878e43f52094b81b9a">LZ4_compress_limitedOutput_withState</a> (<span class="keywordtype">void</span>* state, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> inputSize, <span class="keywordtype">int</span> maxOutputSize);</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#ae109cde385eef87af7d46ce529bb857f">LZ4_compress_continue</a>                (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* LZ4_streamPtr, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> inputSize);</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a2383bf54f8201572b6f747c79c82c387">LZ4_compress_limitedOutput_continue</a>  (<a class="code" href="structLZ4__stream__t.html">LZ4_stream_t</a>* LZ4_streamPtr, <span class="keyword">const</span> <span class="keywordtype">char</span>* source, <span class="keywordtype">char</span>* dest, <span class="keywordtype">int</span> inputSize, <span class="keywordtype">int</span> maxOutputSize);</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">/* Obsolete decompression functions */</span></div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">/* These function names are completely deprecated and must no longer be used.</span></div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">   They are only provided here for compatibility with older programs.</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">    - LZ4_uncompress is the same as LZ4_decompress_fast</span></div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">    - LZ4_uncompress_unknownOutputSize is the same as LZ4_decompress_safe</span></div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">   These function prototypes are now disabled; uncomment them only if you really need them.</span></div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment">   It is highly recommended to stop using these prototypes and migrate to maintained ones */</span></div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment">/* int LZ4_uncompress (const char* source, char* dest, int outputSize); */</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">/* int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int isize, int maxOutputSize); */</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">/* Obsolete streaming functions; use new streaming interface whenever possible */</span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(<span class="stringliteral">&quot;use LZ4_createStream() instead&quot;</span>) void* <a class="code" href="lz4_8h.html#a3bc34ce06f00512001d0b5ffd1780b6d">LZ4_create</a> (<span class="keywordtype">char</span>* inputBuffer);</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(&quot;use <a class="code" href="lz4_8h.html#a2ee12bd94227e0c76a3b686eee813c91">LZ4_createStream</a>() instead&quot;) <span class="keywordtype">int</span>   <a class="code" href="lz4_8h.html#a92f20fa55554d00760fb6fb4108a2825">LZ4_sizeofStreamState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(&quot;use <a class="code" href="lz4_8h.html#a79e9cb645d8480094bc9978a5882cb04">LZ4_resetStream</a>() instead&quot;)  <span class="keywordtype">int</span>   <a class="code" href="lz4_8h.html#acc12a443b49ec045db2399d57c0afde7">LZ4_resetStreamState</a>(<span class="keywordtype">void</span>* state, <span class="keywordtype">char</span>* inputBuffer);</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(&quot;use <a class="code" href="lz4_8h.html#a9c47b588beedea888f55bfc8f079135d">LZ4_saveDict</a>() instead&quot;)     <span class="keywordtype">char</span>* <a class="code" href="lz4_8h.html#a92220273c4236971668c5bae0561400a">LZ4_slideInputBuffer</a> (<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment">/* Obsolete streaming decoding functions */</span></div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(&quot;use <a class="code" href="lz4_8h.html#a8aa703547a53208381f806aa36b45fe7">LZ4_decompress_safe_usingDict</a>() instead&quot;) <span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a7957597d225aa0999f53bfedbf2eabff">LZ4_decompress_safe_withPrefix64k</a> (const <span class="keywordtype">char</span>* src, <span class="keywordtype">char</span>* dst, <span class="keywordtype">int</span> compressedSize, <span class="keywordtype">int</span> maxDstSize);</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<a class="code" href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a>(&quot;use <a class="code" href="lz4_8h.html#a1af9f7a2df20389dd9a0a31706c683b7">LZ4_decompress_fast_usingDict</a>() instead&quot;) <span class="keywordtype">int</span> <a class="code" href="lz4_8h.html#a0a0499117840f38b133962098553e674">LZ4_decompress_fast_withPrefix64k</a> (const <span class="keywordtype">char</span>* src, <span class="keywordtype">char</span>* dst, <span class="keywordtype">int</span> originalSize);</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">#if defined (__cplusplus)</span></div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="lz4_8h_html_a95a14f1e80807a2def8a25dc4a92e505"><div class="ttname"><a href="lz4_8h.html#a95a14f1e80807a2def8a25dc4a92e505">LZ4_compress_fast_continue</a></div><div class="ttdeci">int LZ4_compress_fast_continue(LZ4_stream_t *streamPtr, const char *src, char *dst, int srcSize, int maxDstSize, int acceleration)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01011">lz4.c:1011</a></div></div>
<div class="ttc" id="lz4_8h_html_a8aa703547a53208381f806aa36b45fe7"><div class="ttname"><a href="lz4_8h.html#a8aa703547a53208381f806aa36b45fe7">LZ4_decompress_safe_usingDict</a></div><div class="ttdeci">int LZ4_decompress_safe_usingDict(const char *source, char *dest, int compressedSize, int maxDecompressedSize, const char *dictStart, int dictSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01434">lz4.c:1434</a></div></div>
<div class="ttc" id="lz4_8h_html_a82b0912e04b945e3817def431071dcd6"><div class="ttname"><a href="lz4_8h.html#a82b0912e04b945e3817def431071dcd6">LZ4_compress_destSize</a></div><div class="ttdeci">int LZ4_compress_destSize(const char *source, char *dest, int *sourceSizePtr, int targetDestSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00912">lz4.c:912</a></div></div>
<div class="ttc" id="lz4_8h_html_a2ee12bd94227e0c76a3b686eee813c91"><div class="ttname"><a href="lz4_8h.html#a2ee12bd94227e0c76a3b686eee813c91">LZ4_createStream</a></div><div class="ttdeci">LZ4_stream_t * LZ4_createStream(void)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00935">lz4.c:935</a></div></div>
<div class="ttc" id="lz4_8h_html_a1af9f7a2df20389dd9a0a31706c683b7"><div class="ttname"><a href="lz4_8h.html#a1af9f7a2df20389dd9a0a31706c683b7">LZ4_decompress_fast_usingDict</a></div><div class="ttdeci">int LZ4_decompress_fast_usingDict(const char *source, char *dest, int originalSize, const char *dictStart, int dictSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01439">lz4.c:1439</a></div></div>
<div class="ttc" id="lz4_8h_html_a328b12424f9542cbc348b98482e455f5"><div class="ttname"><a href="lz4_8h.html#a328b12424f9542cbc348b98482e455f5">LZ4_createStreamDecode</a></div><div class="ttdeci">LZ4_streamDecode_t * LZ4_createStreamDecode(void)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01319">lz4.c:1319</a></div></div>
<div class="ttc" id="lz4_8h_html_acddbce79f3e1d413f295e97d986ab3f5"><div class="ttname"><a href="lz4_8h.html#acddbce79f3e1d413f295e97d986ab3f5">LZ4_STREAMSIZE_U64</a></div><div class="ttdeci">#define LZ4_STREAMSIZE_U64</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8h_source.html#l00187">lz4.h:187</a></div></div>
<div class="ttc" id="lz4_8h_html_a381f2c18481ff02bef22198a6e1d0cf2"><div class="ttname"><a href="lz4_8h.html#a381f2c18481ff02bef22198a6e1d0cf2">LZ4_compress</a></div><div class="ttdeci">int LZ4_compress(const char *source, char *dest, int sourceSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01456">lz4.c:1456</a></div></div>
<div class="ttc" id="lz4_8h_html_a79e9cb645d8480094bc9978a5882cb04"><div class="ttname"><a href="lz4_8h.html#a79e9cb645d8480094bc9978a5882cb04">LZ4_resetStream</a></div><div class="ttdeci">void LZ4_resetStream(LZ4_stream_t *streamPtr)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00943">lz4.c:943</a></div></div>
<div class="ttc" id="lz4_8h_html_a414ecb38e0607f239de5ebca5a5beef5"><div class="ttname"><a href="lz4_8h.html#a414ecb38e0607f239de5ebca5a5beef5">LZ4_STREAMDECODESIZE_U64</a></div><div class="ttdeci">#define LZ4_STREAMDECODESIZE_U64</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8h_source.html#l00247">lz4.h:247</a></div></div>
<div class="ttc" id="lz4_8h_html_a0826f3dc340fdea6dfa985f6ac26642f"><div class="ttname"><a href="lz4_8h.html#a0826f3dc340fdea6dfa985f6ac26642f">LZ4_decompress_safe</a></div><div class="ttdeci">int LZ4_decompress_safe(const char *source, char *dest, int compressedSize, int maxDecompressedSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01288">lz4.c:1288</a></div></div>
<div class="ttc" id="lz4_8h_html_a763c64c41c7248a98cf2e9c733bffd3e"><div class="ttname"><a href="lz4_8h.html#a763c64c41c7248a98cf2e9c733bffd3e">LZ4_compress_default</a></div><div class="ttdeci">int LZ4_compress_default(const char *source, char *dest, int sourceSize, int maxDestSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00697">lz4.c:697</a></div></div>
<div class="ttc" id="structLZ4__streamDecode__t_html"><div class="ttname"><a href="structLZ4__streamDecode__t.html">LZ4_streamDecode_t</a></div><div class="ttdef"><b>Definition:</b> <a href="lz4_8h_source.html#l00249">lz4.h:249</a></div></div>
<div class="ttc" id="lz4_8h_html_a2383bf54f8201572b6f747c79c82c387"><div class="ttname"><a href="lz4_8h.html#a2383bf54f8201572b6f747c79c82c387">LZ4_compress_limitedOutput_continue</a></div><div class="ttdeci">int LZ4_compress_limitedOutput_continue(LZ4_stream_t *LZ4_streamPtr, const char *source, char *dest, int inputSize, int maxOutputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01459">lz4.c:1459</a></div></div>
<div class="ttc" id="lz4_8h_html_acc12a443b49ec045db2399d57c0afde7"><div class="ttname"><a href="lz4_8h.html#acc12a443b49ec045db2399d57c0afde7">LZ4_resetStreamState</a></div><div class="ttdeci">int LZ4_resetStreamState(void *state, char *inputBuffer)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01482">lz4.c:1482</a></div></div>
<div class="ttc" id="lz4_8h_html_ac33dfb57efd9b3d6ab4c818ffd797f48"><div class="ttname"><a href="lz4_8h.html#ac33dfb57efd9b3d6ab4c818ffd797f48">LZ4_decompress_safe_continue</a></div><div class="ttdeci">int LZ4_decompress_safe_continue(LZ4_streamDecode_t *LZ4_streamDecode, const char *source, char *dest, int compressedSize, int maxDecompressedSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01355">lz4.c:1355</a></div></div>
<div class="ttc" id="lz4_8h_html_a3bc34ce06f00512001d0b5ffd1780b6d"><div class="ttname"><a href="lz4_8h.html#a3bc34ce06f00512001d0b5ffd1780b6d">LZ4_create</a></div><div class="ttdeci">void * LZ4_create(char *inputBuffer)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01489">lz4.c:1489</a></div></div>
<div class="ttc" id="lz4_8h_html_a9a7a69397b6452fcf6a35caa40493776"><div class="ttname"><a href="lz4_8h.html#a9a7a69397b6452fcf6a35caa40493776">LZ4_versionNumber</a></div><div class="ttdeci">int LZ4_versionNumber(void)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00371">lz4.c:371</a></div></div>
<div class="ttc" id="lz4_8h_html_a2767ab06e17851306c82beb70d1ae285"><div class="ttname"><a href="lz4_8h.html#a2767ab06e17851306c82beb70d1ae285">LZ4_freeStream</a></div><div class="ttdeci">int LZ4_freeStream(LZ4_stream_t *streamPtr)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00948">lz4.c:948</a></div></div>
<div class="ttc" id="lz4_8h_html_a92220273c4236971668c5bae0561400a"><div class="ttname"><a href="lz4_8h.html#a92220273c4236971668c5bae0561400a">LZ4_slideInputBuffer</a></div><div class="ttdeci">char * LZ4_slideInputBuffer(void *state)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01496">lz4.c:1496</a></div></div>
<div class="ttc" id="lz4_8h_html_a7957597d225aa0999f53bfedbf2eabff"><div class="ttname"><a href="lz4_8h.html#a7957597d225aa0999f53bfedbf2eabff">LZ4_decompress_safe_withPrefix64k</a></div><div class="ttdeci">int LZ4_decompress_safe_withPrefix64k(const char *src, char *dst, int compressedSize, int maxDstSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01505">lz4.c:1505</a></div></div>
<div class="ttc" id="lz4_8h_html_afa2a2c9dbd9d88448d70c8fff093782b"><div class="ttname"><a href="lz4_8h.html#afa2a2c9dbd9d88448d70c8fff093782b">LZ4_DEPRECATED</a></div><div class="ttdeci">#define LZ4_DEPRECATED(message)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8h_source.html#l00324">lz4.h:324</a></div></div>
<div class="ttc" id="lz4_8h_html_aae32f2434789e3878e43f52094b81b9a"><div class="ttname"><a href="lz4_8h.html#aae32f2434789e3878e43f52094b81b9a">LZ4_compress_limitedOutput_withState</a></div><div class="ttdeci">int LZ4_compress_limitedOutput_withState(void *state, const char *source, char *dest, int inputSize, int maxOutputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01457">lz4.c:1457</a></div></div>
<div class="ttc" id="lz4_8h_html_ae109cde385eef87af7d46ce529bb857f"><div class="ttname"><a href="lz4_8h.html#ae109cde385eef87af7d46ce529bb857f">LZ4_compress_continue</a></div><div class="ttdeci">int LZ4_compress_continue(LZ4_stream_t *LZ4_streamPtr, const char *source, char *dest, int inputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01460">lz4.c:1460</a></div></div>
<div class="ttc" id="lz4_8h_html_a8bddc4523649a0417a05b51cd86d29dc"><div class="ttname"><a href="lz4_8h.html#a8bddc4523649a0417a05b51cd86d29dc">LZ4_loadDict</a></div><div class="ttdeci">int LZ4_loadDict(LZ4_stream_t *streamPtr, const char *dictionary, int dictSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00956">lz4.c:956</a></div></div>
<div class="ttc" id="lz4_8h_html_aa1dd11dbded7552766e763c822718586"><div class="ttname"><a href="lz4_8h.html#aa1dd11dbded7552766e763c822718586">LZ4_compress_fast_extState</a></div><div class="ttdeci">int LZ4_compress_fast_extState(void *state, const char *source, char *dest, int inputSize, int maxDestSize, int acceleration)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00657">lz4.c:657</a></div></div>
<div class="ttc" id="lz4_8h_html_a0a0499117840f38b133962098553e674"><div class="ttname"><a href="lz4_8h.html#a0a0499117840f38b133962098553e674">LZ4_decompress_fast_withPrefix64k</a></div><div class="ttdeci">int LZ4_decompress_fast_withPrefix64k(const char *src, char *dst, int originalSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01510">lz4.c:1510</a></div></div>
<div class="ttc" id="lz4_8h_html_a430f331e5951658bd033faf564a958bf"><div class="ttname"><a href="lz4_8h.html#a430f331e5951658bd033faf564a958bf">LZ4_compress_withState</a></div><div class="ttdeci">int LZ4_compress_withState(void *state, const char *source, char *dest, int inputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01458">lz4.c:1458</a></div></div>
<div class="ttc" id="lz4_8h_html_a5533b6e13559d2c75ac5ac6d4eb13beb"><div class="ttname"><a href="lz4_8h.html#a5533b6e13559d2c75ac5ac6d4eb13beb">LZ4_sizeofState</a></div><div class="ttdeci">int LZ4_sizeofState(void)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00373">lz4.c:373</a></div></div>
<div class="ttc" id="lz4_8h_html_a9c47b588beedea888f55bfc8f079135d"><div class="ttname"><a href="lz4_8h.html#a9c47b588beedea888f55bfc8f079135d">LZ4_saveDict</a></div><div class="ttdeci">int LZ4_saveDict(LZ4_stream_t *streamPtr, char *safeBuffer, int dictSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01083">lz4.c:1083</a></div></div>
<div class="ttc" id="lz4_8h_html_affe4afb333be7fdc027316cc3a381b04"><div class="ttname"><a href="lz4_8h.html#affe4afb333be7fdc027316cc3a381b04">LZ4_compress_fast</a></div><div class="ttdeci">int LZ4_compress_fast(const char *source, char *dest, int sourceSize, int maxDestSize, int acceleration)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00679">lz4.c:679</a></div></div>
<div class="ttc" id="lz4_8h_html_a1b6fd5873bbe60abc9a6bf7b3e75056a"><div class="ttname"><a href="lz4_8h.html#a1b6fd5873bbe60abc9a6bf7b3e75056a">LZ4_decompress_fast</a></div><div class="ttdeci">int LZ4_decompress_fast(const char *source, char *dest, int originalSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01298">lz4.c:1298</a></div></div>
<div class="ttc" id="lz4_8h_html_a3a6eebab33f6637b7bd70db2c66ff88a"><div class="ttname"><a href="lz4_8h.html#a3a6eebab33f6637b7bd70db2c66ff88a">LZ4_compress_limitedOutput</a></div><div class="ttdeci">int LZ4_compress_limitedOutput(const char *source, char *dest, int sourceSize, int maxOutputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01455">lz4.c:1455</a></div></div>
<div class="ttc" id="lz4_8h_html_a362093578d68480b493984b4853edc1f"><div class="ttname"><a href="lz4_8h.html#a362093578d68480b493984b4853edc1f">LZ4_compressBound</a></div><div class="ttdeci">int LZ4_compressBound(int inputSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l00372">lz4.c:372</a></div></div>
<div class="ttc" id="lz4_8h_html_a92f20fa55554d00760fb6fb4108a2825"><div class="ttname"><a href="lz4_8h.html#a92f20fa55554d00760fb6fb4108a2825">LZ4_sizeofStreamState</a></div><div class="ttdeci">int LZ4_sizeofStreamState(void)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01474">lz4.c:1474</a></div></div>
<div class="ttc" id="lz4_8h_html_afdcbf92c1921ecf2838db322c77c1485"><div class="ttname"><a href="lz4_8h.html#afdcbf92c1921ecf2838db322c77c1485">LZ4_freeStreamDecode</a></div><div class="ttdeci">int LZ4_freeStreamDecode(LZ4_streamDecode_t *LZ4_stream)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01325">lz4.c:1325</a></div></div>
<div class="ttc" id="lz4_8h_html_a32ad048b557cd0bd1134cc8221dca208"><div class="ttname"><a href="lz4_8h.html#a32ad048b557cd0bd1134cc8221dca208">LZ4_decompress_safe_partial</a></div><div class="ttdeci">int LZ4_decompress_safe_partial(const char *source, char *dest, int compressedSize, int targetOutputSize, int maxDecompressedSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01293">lz4.c:1293</a></div></div>
<div class="ttc" id="lz4_8h_html_a971624e4abed2ab679a8c1728875663b"><div class="ttname"><a href="lz4_8h.html#a971624e4abed2ab679a8c1728875663b">LZ4_setStreamDecode</a></div><div class="ttdeci">int LZ4_setStreamDecode(LZ4_streamDecode_t *LZ4_streamDecode, const char *dictionary, int dictSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01338">lz4.c:1338</a></div></div>
<div class="ttc" id="structLZ4__stream__t_html"><div class="ttname"><a href="structLZ4__stream__t.html">LZ4_stream_t</a></div><div class="ttdef"><b>Definition:</b> <a href="lz4_8h_source.html#l00196">lz4.h:196</a></div></div>
<div class="ttc" id="lz4_8h_html_acfb9c80632c155cdb7cce498ae1c88bc"><div class="ttname"><a href="lz4_8h.html#acfb9c80632c155cdb7cce498ae1c88bc">LZ4_decompress_fast_continue</a></div><div class="ttdeci">int LZ4_decompress_fast_continue(LZ4_streamDecode_t *LZ4_streamDecode, const char *source, char *dest, int originalSize)</div><div class="ttdef"><b>Definition:</b> <a href="lz4_8c_source.html#l01384">lz4.c:1384</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
